package com.gccloud.design.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author guo.wang
 */
@Data
@Accessors(chain = true)
@ApiModel("API定义：新增或者修改的dto")
public class SdApiAddDto implements Serializable {

    private static final long serialVersionUID = -2369802928575399455L;

    @ApiModelProperty("API标识")
    private Long apiId;

    @ApiModelProperty("API名称")
    private String apiName;

    @ApiModelProperty("API编码")
    private String apiCode;

    @ApiModelProperty("API版本")
    private String apiVersion;

    @ApiModelProperty("API状态")
    private String apiStatus;

    @ApiModelProperty("API分类")
    private String apiClass;

    @ApiModelProperty("API类型")
    private String apiType;

    @ApiModelProperty("API提供方")
    private String apiProvider;

    @ApiModelProperty("API消费方")
    private String apiConsumer;
//    API服务协议
//    API服务主机地址
//    API服务基础路径
//    http请求动作

    @ApiModelProperty("调用超时")
    private Integer callTimeOut;

    @ApiModelProperty("是否重试：0是、1否")
    private String isTry;

    @ApiModelProperty("调用重复次数：try_count")
    private Integer tryCount;

    @ApiModelProperty("API调用重试间隔（秒）:try_interval")
    private Integer tryInterval;


    @ApiModelProperty("API描述")
    private String comments;

    @ApiModelProperty("API目录标识")
    private Integer catalogId;

    @ApiModelProperty("API目录编码")
    private String catalogCode;


    @ApiModelProperty("API目录名称")
    private String catalogName;


    @ApiModelProperty("API基础路径")
    private String apiPath;


    @ApiModelProperty("HTTP请求动作")
    private String apiAction;


    @ApiModelProperty("API服务协议")
    private String apiProtocol;

//    API入参模板
//    API出参模板
//    API入参解析脚本
//    API出参解析脚本

    @ApiModelProperty("创建人标识")
    private String createdId;


    @ApiModelProperty("创建人名称")
    private String createdName;


    @ApiModelProperty("创建时间")
    private String createdTime;


    @ApiModelProperty("修改人标识")
    private String modifiedId;

    @ApiModelProperty("修改人姓名")
    private String modifiedName;


    @ApiModelProperty("修改时间")
    private String modifiedTime;

    @ApiModelProperty("API归属服务对象ID")
    private Integer relaSrId;

    @ApiModelProperty("API归属服务对象类型")
    private String relaSrType;

    @ApiModelProperty("是否核心API")
    private String isCore;


    @ApiModelProperty("编排包标识")
    private String bisopId;

    @ApiModelProperty("编排包编码")
    private String bisopCode;

    @ApiModelProperty("流程平台关联标识")
    private Long flowApiRelaId;

    @ApiModelProperty("数据格式")
    private String dataFormat;

    @ApiModelProperty("交互模式")
    private String interactionMode;

//    此上为本次所需



    @ApiModelProperty("API调用地址")
    private String apiIp;

    @ApiModelProperty("API能力来源")
    private String apiAbilitySource;

    @ApiModelProperty("API能力绑定")
    private String apiAbilityUrl;

}
